

package main.new_2024.month_07;


/**
 * @Description: todo 3099. 哈沙德数
 * 如果一个整数能够被其各个数位上的数字之和整除，则称之为 哈沙德数（Harshad number）。
 * 给你一个整数 x 。如果 x 是 哈沙德数 ，则返回 x 各个数位上的数字之和，否则，返回 -1 。
 * todo 3115. 质数的最大距离
 * 给你一个整数数组 nums。
 * 返回两个（不一定不同的）质数在 nums 中 下标 的 最大距离。
 *
 * @Author: Take-off
 * @Date: 1:00 PM 2024/2/27
 * @Param:
 * @return:
 **/
public class Solution0703 {



    //质数的最大距离
    public int maximumPrimeDifference(int[] nums) {
        int left = nums.length;
        int right = -1;
        for (int i = 0;i<nums.length;i++){
            if (isPrime(nums[i])){
                left = i;
                break;
            }
        }
        for (int i = nums.length-1;i>0;i--){
            if (isPrime(nums[i])){
                right = i;
                break;
            }
        }
        if (left<right){
            return right-left;
        }else {
            return 0;
        }
    }

    public static boolean isPrime(int x){
        if (x == 1){
            return false;
        }
        boolean flag = true;
        for(int j=2;j<=x/2;j++){
            if(x%j==0){
                flag=false;
                break;
            }
        }
        return flag;
    }


    //哈沙德数
    public int sumOfTheDigitsOfHarshadNumber(int x) {
        //计算数位和
        int temp = x;
        int result = 0;
        while (temp >0){
            result += temp%10;
            temp = temp/10;
        }
        if (x % result == 0){
            return result;
        }else {
            return  -1;
        }
    }


}

